Design Philosophy

Understanding the "why" behind ANTSAND makes the "how" much easier to master.

💡 A Note for New Developers

ANTSAND isn't unreadable. It's unfamiliar.

If you're coming from React, Tailwind, or Next.js, this will look different. That's okay. The system is intentional, well-documented, and has 10+ years of production use behind it. Give it a few hours before judging—the patterns will start making sense.

🎯 Why ANTSAND Exists

ANTSAND was built to solve real problems that modern frameworks still struggle with: fast static deployment, zero-database runtime, and true separation of data from presentation.

2014 - The Beginning

Started as a social platform with profile pages, posts, and tribes

2016 - CMS Evolution

Evolved into a full website builder with Databoard

2020 - Static Deployment

Added JSON-based static site generation for maximum speed

2024 - DSL System

Introduced the CSS DSL for declarative styling

🔧 The Dual-Class System

ANTSAND uses two types of CSS classes working together. This isn't accidental—it's architectural.

Semantic Classes

.antsand-article, .antsand-btn, .antsand-card
Describe what something is. Used for components with multiple properties.

Utility Classes

.text-center, .antsand-mt-4, .antsand-flex
Do one thing. Used for quick overrides and composition.

Why Both?

Tailwind-Compatible Utilities

If you're comfortable with Tailwind, you'll feel at home. ANTSAND includes utility classes that follow familiar patterns:

/* Spacing - like Tailwind */
.antsand-m-0  .antsand-m-4  .antsand-mt-2  .antsand-px-6
.antsand-p-0  .antsand-p-4  .antsand-pb-2  .antsand-py-6

/* Typography */
.antsand-text-sm  .antsand-text-lg  .antsand-text-2xl
.antsand-text-bold  .antsand-text-center

/* Flexbox */
.antsand-flex  .antsand-flex-col  .antsand-items-center
.antsand-justify-between  .antsand-gap-4

/* Colors */
.antsand-text-primary  .antsand-bg-dark  .antsand-text-muted

Note: We prefix with antsand- to avoid conflicts with other frameworks. You can use these alongside semantic classes for maximum flexibility.

🚀 Why JSON Deployment?

When you deploy a site from ANTSAND, it generates static JSON files. No database queries at runtime.

Traditional CMS

User visits → Server queries DB → Template renders → HTML sent
~200-500ms per request

ANTSAND Static

User visits → CDN serves pre-built HTML + JSON
~20-50ms per request

The Flow

  1. You edit in Databoard (menu topo, sections, CSS)
  2. Click Deploy → ANTSAND generates api_data.json, api_blog_data.json, api_posts_data.json
  3. Volt templates read JSON and render static HTML
  4. Result: Blazing fast sites that scale infinitely

🎨 Why Inline CSS Option?

In Databoard, you'll see css_inline alongside css_class. This isn't laziness—it's power.

// In your DSL CSS:
{
  "header": {
    "section": {
      "css_class": "antsand-section antsand-py-6",
      "css_styles": {
        "style": "background: linear-gradient(135deg, #1a1a2e, #2d3436);"
      }
    }
  }
}

When to Use Each

Pro tip: Inline styles have highest CSS specificity. Use them for final overrides that should never be changed by classes.

🚫 Why No !important?

ANTSAND is structured so you never need !important. The cascade is a feature.

/* Load order defines priority */
1. Foundation (variables, reset)
2. Layout (containers, grid)
3. Components (buttons, cards)
4. Patterns (hero, features)
5. Themes (overrides everything)
6. Inline styles (highest specificity)

If you need to override something, you either:

Read the full Specificity Philosophy →

The Result

A system where:

Ready to dive in? Start with Introduction →