Join our Facebook Group
Sngine by ScriptsTribe! The only group where you will actually find tutorials and free stuff once in a while
Join

Foren

The great place to discuss topics with other users

Extending Sngine’s Chronological Timeline Without Algorithms

'
Join the Conversation Antwort veröffentlichen
Zohra Boelhouwers
Member
Joined: 2026-01-29 10:03:15
2026-01-30 18:51:11

 

Extending the Chronological Timeline in Sngine

A structural proposal for humane content discovery

One-sentence pitch This concept enhances Sngine's chronological timeline by introducing transparent, activity-based resurfacing and narrative archival discovery — without algorithms, rankings, or behavioral manipulation.

From a Linear Feed to Living Content

The limitation of a purely chronological timeline

A chronological timeline displays content strictly by publication time: newest first, older posts continuously pushed downward.

While this approach is transparent and simple, it has a fundamental structural limitation:

Visibility is entirely tied to the moment of posting.

This leads to several structural issues:

  • Valuable content has a very short visibility window
  • Attention concentrates on "what's new" rather than "what matters"
  • Older discussions disappear regardless of quality
  • Long-term engagement naturally declines

Content does not lose relevance — it loses visibility.


The Core Idea: Content Lives in Phases, Not Rankings

Instead of replacing chronological order, this concept extends it by introducing parallel content views that reflect how content actually lives over time.

1
No algorithm
2
No hidden scoring
3
No behavioral manipulation

Only explicit, human-driven signals.


1. Chronological View — Now

  • Default view
  • Fully unchanged
  • No filtering or prioritization

This remains the neutral source of truth within Sngine.


2. Resonance View — Alive

An optional view that surfaces content which regains relevance through meaningful interaction, rather than popularity metrics.

A post enters Resonance only when:

  • A new comment is added
  • After at least 48 hours of inactivity
Why 48 hours? This threshold prevents notification spam and distinguishes genuine conversation revival from rapid-fire commenting. It ensures Resonance reflects sustained interest, not momentary activity.

Explicitly not triggered by:

  • Likes (too easily gamed)
  • Shares (can be automated)
  • Author self-promotion
  • Any automated or passive actions

Transparency (mandatory)

Each resurfaced post clearly displays the reason it appears:

"Conversation resumed after 6 days by [username]"

This reason is stored explicitly in the database, not inferred or calculated:

Database Schema Addition

Table Column Type Purpose
posts last_resonance_at TIMESTAMP NULL When post entered Resonance
posts resonance_reason VARCHAR(255) NULL Explicit reason for display
posts resonance_count INT DEFAULT 0 Track re-entries (cooldown logic)
users default_view ENUM User preference (optional)

Intentional constraints

  • Maximum of 5 items visible — no infinite scroll, no filler
  • Temporary visibility: 24 hours OR until displaced by newer qualifying content
  • Re-entry cooldown: Minimum 7 days between appearances prevents spam
  • No artificial filling: If only 2 items qualify, show 2. Silence is acceptable.
Resonance is never forced. If no conversations reignite, the view remains empty. This is not a bug — it reflects genuine community activity rather than algorithmic pressure to perform.

3. Archive View — Past

Not a list of old posts, but a space for intentional discovery.

Features

  • Filter by time period, topic, or author
  • Thematic timelines: "This topic was actively discussed in September 2023"
  • Visual connections: Related posts within the same theme
Technical note: Thematic clustering uses existing hashtag infrastructure or optional manual curation by moderators. No AI-based topic modeling, no behavioral analysis.

The archive preserves context, not just stored data.


The Role of the Author: Human Curation

Authors may optionally:

  • Mark one older post per week as contextually relevant
  • Add a required explanation (minimum 50 characters) why it matters now

This is:

  • Not a boost (no algorithmic advantage)
  • Not a ranking (appears in Resonance with distinct visual indicator)
  • Explicit human interpretation, not system inference
Why not a "bump" button? A bump is intentional manipulation by the author. Resonance responds to genuine community interest — someone else must reignite the conversation. This prevents gaming while preserving agency.

Why This Improves Engagement (Without Manipulation)

This approach does not aim to maximize:

  • Clicks
  • Scrolling time
  • Daily active users through notifications

Instead, it enables:

  • Longer and resumed conversations
  • Higher-quality interaction
  • Content with multiple life cycles
  • Sustained attention over time
More meaning per unit of time.

Alternative Success Metrics

Rather than focusing on traditional engagement metrics, this model evaluates:

  • Conversation continuity: Average time between first and last comment
  • Resonance rate: Percentage of posts that re-enter active discussion
  • Attention distribution: Views spread across content age, not concentration on "now"
  • Author retention: Motivation to post quality over quantity

Summary

A purely chronological timeline is fair, but structurally limited. By extending it with transparent, activity-based resurfacing and narrative archival discovery, Sngine can:

  • Preserve chronological integrity
  • Increase content longevity
  • Improve engagement without algorithms or manipulation
  • Maintain technical simplicity (3 columns, optional module)
This is not a request to "make Sngine more addictive."
It is a structural proposal to "make Sngine more humane."

Technical Implementation Notes

Resonance Detection Logic (Pseudo-code)

// On new comment submission
if ($post->last_comment_time < strtotime('-48 hours')) {
    $post->last_resonance_at = now();
    $post->resonance_count++;
    $post->resonance_reason = sprintf(
        "Conversation resumed after %d days by %s",
        daysSince($post->last_comment_time),
        $current_user->username
    );
    
    // Maintain max 5 items: remove oldest if needed
    if (Resonance::count() > 5) {
        Resonance::oldest()->remove();
    }
    
    // Cooldown check for re-entry
    if ($post->resonance_count > 1) {
        $post->resonance_locked_until = now()->addDays(7);
    }
}
Backward compatibility: All features are opt-in. Existing Sngine installations continue unchanged. New columns default to NULL; no migra
 
 
 

1️⃣ Database Setup

-- Add new fields to posts
ALTER TABLE posts 
ADD COLUMN last_resonance_at TIMESTAMP NULL,
ADD COLUMN resonance_count INT DEFAULT 0,
ADD COLUMN resonance_reason VARCHAR(255) NULL;

-- Table for user feed preferences
CREATE TABLE user_feed_preferences (
    user_id INT PRIMARY KEY,
    default_view ENUM('chronological', 'resonance', 'archive') DEFAULT 'chronological',
    resonance_enabled BOOLEAN DEFAULT TRUE
);

✅ Ready to store “Resonance” and personal feed preferences.

2️⃣ Resonance Trigger (PHP)

function handleResonance($post_id, $comment_user_id) {
    // Fetch post
    $post = getPostById($post_id);
    
    // Check if last comment was more than 48 hours ago
    if (strtotime($post['last_comment_time']) < strtotime('-48 hours')) {
        $post['last_resonance_at'] = date('Y-m-d H:i:s');
        $post['resonance_count'] += 1;
        $post['resonance_reason'] = "Conversation resumed after " . 
            calculateDaysSince($post['last_comment_time']) . " days by UserID: $comment_user_id";

        updatePostResonance($post); // Update in DB

        maintainResonanceLimit(5); // Max 5 posts visible
    }
}

// Helper function
function calculateDaysSince($timestamp) {
    $then = new DateTime($timestamp);
    $now = new DateTime();
    $diff = $then->diff($now);
    return $diff->days;
}

3️⃣ Frontend: Tabs and Display

<div class="feed-tabs">
    <button onclick="showTab('chronological')">Now</button>
    <button onclick="showTab('resonance')">Alive</button>
    <button onclick="showTab('archive')">Past</button>
</div>

<div id="chronological" class="tab-content">
    <?php foreach($posts_chrono as $post): ?>
        <div class="post">
            <p><?= $post['content'] ?></p>
            <small><?= $post['created_at'] ?></small>
        </div>
    <?php endforeach; ?>
</div>

<div id="resonance" class="tab-content" style="display:none">
    <?php foreach($posts_resonance as $post): ?>
        <div class="post">
            <p><?= $post['content'] ?></p>
            <small><?= $post['resonance_reason'] ?></small>
        </div>
    <?php endforeach; ?>
</div>

<div id="archive" class="tab-content" style="display:none">
    <?php foreach($posts_archive as $post): ?>
        <div class="post">
            <p><?= $post['content'] ?></p>
            <small><?= $post['created_at'] ?> | Theme: <?= $post['theme'] ?></small>
        </div>
    <?php endforeach; ?>
</div>

<script>
function showTab(tabName) {
    document.querySelectorAll('.tab-content').forEach(tab => tab.style.display='none');
    document.getElementById(tabName).style.display='block';
}
</script>

✅ Simple, clear, three distinct views.

4️⃣ Queries

Chronological

SELECT * FROM posts
ORDER BY created_at DESC
LIMIT 50;

Resonance

SELECT * FROM posts
WHERE last_resonance_at IS NOT NULL
ORDER BY last_resonance_at DESC
LIMIT 5;

Archive

SELECT * FROM posts
WHERE created_at < NOW() - INTERVAL 7 DAY
ORDER BY created_at DESC;

> In Archive you can later filter by theme, author, or month.

5️⃣ Author Curation (Optional)

function markPostAsContextual($post_id, $note) {
    $post = getPostById($post_id);
    $post['resonance_reason'] = $note;
    $post['last_resonance_at'] = date('Y-m-d H:i:s');
    updatePostResonance($post);
}

> Allows authors to explicitly make old posts relevant again.

6️⃣ Testing Checklist

  • New post → check Chronological feed
  • Old post + new comment after >48h → check Resonance feed
  • Archive → filter by date or theme → check context display
  • Author marks post → appears in Resonance with note