Under maintenance

pqno.app

Links, content, analytics and digital identity in a single solution: shortener, Link-in-Bio, collections, analytics, REST API and subscription plans.

PHPJavaScriptSQLREST APIJWT
Coming soonBack to home
status: under maintenance
templates: 20 designs
blocks: 5 types
 
// profile
collection · link · text
image · video
 
// api
REST · Bearer JWT
quotas per plan
 
launch: coming soon
20visual templates
5block types
5button styles
3plans
10,000requests/day on Business
RESTAPI for integrations
Smart links

Creation and management of short URLs, custom codes and a configurable public structure.

Link-in-Bio

Highly customizable pages built from content blocks.

Collections

Grouping, ordering, highlighting and dynamic composition of links.

Analytics

Access metrics, trends over time and link rankings.

REST API

Integration with external applications to create, query and analyze links.

Plans

Free, Pro and Business plans with limits, quotas and features unlocked by subscription.

Links platform

I built a complete platform to create, distribute and analyze links, combining URL shortening, Link-in-Bio, collections, analytics, a REST API and subscription plans in a single module.

The solution was built on NoName, a modular platform I developed that provides the base infrastructure used by the modules of the ecosystem.


Link-in-Bio as a page builder

The public profile works as a dynamic composition of blocks.

profile
Profile
├── Collection
├── Link
├── Text
├── Image
├── Video
└── Collection

Each block has its own settings and can be reordered by the user.

Collections can also use different display strategies:

display
All links
Pinned links
Recent links
Item limit
List or grid

This makes it possible to create visually and functionally different pages with the same rendering engine.


20 visual templates

The platform has 20 templates, spread across four categories.

Each template combines properties of the visual system itself:

  • Backgrounds and gradients
  • Textures
  • Typography
  • Colors
  • Button styles
  • Shapes
  • Page composition

Users can preview the result with their own content before applying any change.

preview
Current page        New template
┌────────────┐     ┌────────────┐
│ real       │     │ real       │
│ content    │     │ content    │
└────────────┘     └────────────┘

Preview and published page use the same rendering engine, keeping the visual result consistent between editing and production.


Visual editor

Customization is not limited to ready-made templates.

The editor controls elements individually, such as:

editor
Page background
Profile background
Gradients
Textures
Colors
Typography
Buttons
Corners
Layout
Blocks
Collections

Templates work as starting points and remain fully editable after they are applied.


Smart collections

Links can be organized into collections and used in different parts of the profile.

Each collection can define:

  • Its own ordering
  • Pinned links
  • Maximum number shown
  • Recent items
  • List or grid layout
  • Visual highlight

Pinning belongs to the relationship between the link and the collection.

pinning
Same link
├── Projects   → pinned
├── Content    → normal
└── Favorites  → pinned

This lets the same content behave differently depending on the context in which it is shown.


Analytics

The product records and consolidates link visits, making it possible to follow:

analytics
Clicks per period
Trends over time
Individual performance
Link ranking
Top Links

The data is also used by the API and may have different availability depending on the plan.


Optimized loading

The public page uses consolidated queries to fetch collections and their links.

Instead of fetching each item individually, the data needed for the composition is loaded together and processed by:

composition
Ordering
Pinning
Recency
Limits
Layout

This strategy avoids N+1 patterns and keeps loading predictable even on pages with many collections and blocks.


On-demand videos

Video blocks accept YouTube and Vimeo content.

The player is not loaded with the page.

video
Page
   ↓
Video cover
   ↓
Click
   ↓
Player

The iframe is only created after the visitor interacts.

Besides reducing external resources during the initial load, the YouTube integration uses youtube-nocookie.com.


Plans and features

The product has three plans.

FeatureFreeProBusiness
Links5UnlimitedUnlimited
Custom code✓✓
API✓✓
Full analytics✓✓
Verified profile✓✓
Branding removal✓

The limits of each plan are part of the business rules themselves.

features
Requested feature
        ↓
  Current plan
        ↓
Feature included?
    ↙       ↘
  Yes       No
   ↓         ↓
  Run    Show the plan
         that includes it

This lets the same feature catalog be used in the interface, in the API and in internal validations.


REST API

Besides the web interface, the solution offers an API for integration with external systems.

The available operations include:

api
Create links
List links
Get statistics
Resolve links
Resolve profiles
Resolve collections

Authentication supports session and Bearer JWT.

There are also specific quotas per plan:

quotas
Pro         1,000 requests/day
Business   10,000 requests/day

When a quota is exceeded, the API returns the appropriate HTTP responses, including 429 Too Many Requests.


Import and export

The solution has its own portability layer.

JSON

Meant for moving the full module data:

json
Links
Collections
Relationships
Profile
Settings
Click history

CSV

Meant for bulk creation and updates. The importer reads:

csv
Code
URL
Title
Description
Collection

And it can generate missing codes, create collections and rebuild the needed relationships automatically.


E-commerce integration

Paid plans use the recurring products and subscriptions infrastructure available in NoName.

Inside the module, this becomes an integrated flow:

subscription
Plan
  ↓
Checkout
  ↓
Subscription
  ↓
Active plan
  ↓
Features unlocked

Prices also come from the registered offer itself, avoiding duplicated commercial values inside the landing page code.


Customization with validation

Visual freedom on the public page does not mean accepting arbitrary properties.

Settings used for rendering are normalized before they reach the CSS.

validation
Received value
      ↓
Normalization
      ↓
Allowed catalog
      ↓
Rendering

Colors, textures, shapes, positions and other properties are controlled by the configuration system itself.


Built with NoName

This solution is one of the modules built on NoName, my modular platform for building and integrating web products.

NoName provides the shared infrastructure of the ecosystem, while this project holds the implementation and the specific rules for links, Link-in-Bio, collections, analytics, API and plan-based monetization.

Tech stack

A solution that brings product engineering, frontend, backend, analytics, APIs and plan-based monetization together in an extensible module integrated with the rest of the NoName ecosystem.

backend:: PHP · PDO · SQL
frontend:: HTML · CSS · JavaScript · SVG
interface:: Responsive UI · CSS Custom Properties
integrations:: REST API · Bearer JWT · Webhooks
commerce:: E-commerce · Subscriptions
product:: Shortener · Link-in-Bio · Analytics · Plans
data:: Relational model · Structured JSON · N:N
routes:: Routing · Rewrite Rules · Redirects
web:: Canonical URLs · SSR