Getting Started

What is frozy.lol?

frozy.lol is a next-generation profile builder platform that lets you create fully customizable bio pages with custom themes, background music, live widgets, Discord decorations, and 50+ visual effects — all free.

Unlike generic link-in-bio services, frozy.lol gives you complete creative freedom. No templates that look like everyone else's. Your profile, your rules.

frozy.lol is built with vanilla HTML5, JavaScript, and PHP 8.2+. No frameworks, no bloated dependencies. Just clean, fast, and fully hackable code.

Quick Start Guide

Get your profile up and running in 5 minutes:

  1. Register — Go to register.html and create your account.
  2. Configure — Edit config.js to set your username, profile image, and social links.
  3. Customize — Choose a theme, add effects, upload your avatar.
  4. Share — Share your frozy.lol/username link everywhere.
config.js // 1. Set your profile image const CONFIG = { profileImage: "https://i.imgur.com/your-image.png", // 2. Set your Discord invite discordServerInvite: "https://discord.gg/yourserver", // 3. Customize your social links socialLinks: [ { name: "GitHub", icon: "fa-brands fa-github", url: "https://github.com/" } ] };

Account Setup

When you register, the following data is stored securely:

FieldTypeDescription
usernameStringYour unique profile identifier (3-24 chars, a-z, 0-9, _)
emailStringYour email address (used for login and recovery)
passwordHashbcrypt hashed — never stored in plain text
registered_atISO DateTimestamp of registration
roleString"user" or "admin"
Passwords are hashed using bcrypt (password_hash() with PASSWORD_DEFAULT). We never store or transmit passwords in plain text.

Customization

Themes & Colors

Every visual aspect of your profile is customizable through CSS custom properties (variables) in the :root section:

CSS /* Core palette — edit these to change your entire theme */ :root { --bg: #02020a; // Background --card: #0e0e22; // Card background --tx: #ececf5; // Primary text --a: #7c3aed; // Accent color --c: #06b6d4; // Cyan accent }

You can change the entire look of your profile by modifying just 5-6 variables. We also support gradient accents through --g4 and custom border-radius with --r.

Effects & Animations

frozy.lol comes with 50+ visual effects that you can enable and stack together:

EffectCategoryPerformance
Cursor TrailMouseLight
Matrix RainBackgroundMedium
AuroraBackgroundHeavy
Neon GlowBorderLight
Particle RainBackgroundMedium
Glitch TextTypographyLight
HeartbeatAnimationLight
FireworksOverlayHeavy
SnowfallBackgroundLight
RainbowBorderLight

Background Music

You can add background music to your profile from multiple sources:

  • Spotify — Embed a track or playlist via Spotify embed.
  • YouTube — Use YouTube's embed player for any video/track.
  • SoundCloud — Embed tracks via SoundCloud's widget.
  • Direct upload — Upload an MP3/OGG file directly.

Music auto-plays when someone opens your profile. Volume controls are provided in the profile UI.

Links & Widgets

Social Links

Add unlimited social links to your profile. Each link can have:

  • Name — Display name (e.g., "GitHub", "Twitter")
  • Icon — Font Awesome icon class
  • URL — Full URL including protocol
  • Color — Optional custom brand color
config.js socialLinks: [ { name: "GitHub", icon: "fa-brands fa-github", url: "https://github.com/" }, { name: "Twitter", icon: "fa-brands fa-x-twitter", url: "https://x.com/" }, { name: "Discord", icon: "fa-brands fa-discord", url: "https://discord.gg/" } ]

Live Widgets

Embed live data from your favorite platforms directly on your profile:

  • Discord Status — Show your Discord online status, activity, and custom status.
  • Valorant Rank — Live rank display via Riot API integration.
  • Last.fm — Currently playing track with album art.
  • Roblox — Profile stats and game activity.
  • YouTube — Latest video or subscriber count.
  • Twitch — Stream status with live viewer count.

Discord Integration

Deep Discord integration is the core of frozy.lol. Features include:

  • Discord Login — Register/login with your Discord account (coming soon).
  • Discord Widget — Show your server's online member count.
  • Decorations — Use Discord avatar decorations directly on your profile.
  • Status Sync — Sync your Discord custom status automatically.

API Reference

Overview

The frozy.lol API is built on simple JSON endpoints. All endpoints return JSON with appropriate CORS headers.

GET /stats.json Get live platform statistics
POST /register.php Create a new account
POST /login.php Authenticate and log in
GET /check_username.php?username= Check username availability
All API endpoints are free and open for integration. No API key required. Rate limiting applies at 100 requests/minute.

GET /stats.json

Returns live platform statistics including user count, links created, total views, and Discord member count.

Response { "users": 24187, "links_created": 89243, "servers_connected": 1247, "total_views": 4582912, "generated_at": "2026-06-17T12:00:00+00:00" }

POST /register.php

Register a new user account. All fields are required.

FieldTypeDescription
usernameString3-24 chars, lowercase, a-z, 0-9, _
emailStringValid email address
passwordStringMin 8 chars, 1 uppercase, 1 number, 1 special
Example // POST /register.php { "username": "janek", "email": "jan@example.com", "password": "SecurePass123!" } // Response { "success": true, "message": "Account created!", "username": "janek" }

POST /login.php

Authenticate with username/email and password. Returns user data on success.

FieldTypeDescription
identifierStringUsername or email
passwordStringAccount password
rememberBooleanWhether to set a remember-me cookie

Configuration

config.js Reference

The config.js file is the central configuration point for your frozy.lol instance:

KeyTypeDefaultDescription
siteNameString"frozy.lol"Site title / brand name
profileImageStringURL to your profile picture
discordServerInviteStringYour Discord server invite link
panelUrlString"/register.html"Registration page URL
footerTextString© 2026...Custom footer text
socialLinksArray[]Array of social link objects

JSON Data Files

Data is stored in flat JSON files — no database required. Perfect for small to medium deployments.

FilePurposeAuto-created
stats.jsonLive platform statisticsYes (by stats.php)
userspass.jsonUser accounts (hashed passwords)Yes (by register.php)
userslogin.jsonLogin history logsYes (by login.php)
JSON files are automatically created on first write. Ensure the web server has write permissions to the directory.

Environment Requirements

RequirementVersionNotes
PHP7.4+8.2+ recommended for best performance
Web ServerApache/Nginxmod_rewrite recommended for clean URLs
JSONjson_encode/json_decode required
File Permissions0755Write access for JSON files

Security

Password Hashing

All passwords are hashed using PHP's built-in password_hash() with the PASSWORD_DEFAULT algorithm (currently bcrypt).

PHP // Hashing (registration) $hash = password_hash($password, PASSWORD_DEFAULT); // Verification (login) $isValid = password_verify($password, $storedHash);

Bcrypt automatically handles salting and cost factor. The resulting hash is 60 characters long and includes the salt, cost, and hash in a single string.

CORS & Headers

All API endpoints include permissive CORS headers for development. In production, these should be restricted:

PHP header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type'); header('Content-Type: application/json');

Rate Limiting

To prevent abuse, the following rate limits apply:

  • API endpoints — 100 requests per minute per IP.
  • Registration — 3 registrations per hour per IP.
  • Login attempts — 10 attempts per 15 minutes per IP.
  • Username checks — 30 checks per minute per IP.

Rate limiting is enforced via server-level configuration (e.g., Apache mod_ratelimit or Nginx limit_req).